草庐IT

C++ 实例

全部标签

c# - 如何强制使用扩展方法而不是带有参数的实例方法?

我无法让C#编译器调用我创建的扩展方法,因为它更喜欢使用带有params参数的实例方法。例如,假设我有以下类及其方法:publicclassC{publicvoidTrace(stringformat,paramsobject[]args){Console.WriteLine("Calledinstancemethod.");}}和和扩展:publicstaticclassCExtensions{publicvoidTrace(thisC@this,stringcategory,stringmessage,paramsTuple[]indicators){Console.WriteLi

c# - 如何从 lambda 表达式中获取引用实例的实例

我有这个lambda表达式Expression>commandToExecute然后我用一个方法传递一个类的实例:_commandExecuter.ProcessCommand(()=>aClass.Method())如何获取aClass的实例在ProcessCommand内方法?我想执行这个类的一些附加方法或获取一些属性值。这可能吗?编辑:我现在已经编写了一个简单的静态辅助方法来获取实例:privatestaticobjectGetReferredProviderInstance(Expressionbody){varmethodCallExpression=bodyasMethod

c# - CaSTLe Windsor - 如何在构造函数注入(inject)中映射命名实例

也许这很容易,但是在网上搜索已经让我头疼了问题是:interfaceIValidator{voidValidate(objectobj);}publicclassValidatorA:IValidator{publicvoidValidate(objectobj){}}publicclassValidatorB:IValidator{publicvoidValidate(objectobj){}}interfaceIClassA{}interfaceIClassB{}publicclassMyBaseClass{protectedIValidatorvalidator;publicvo

c# - 无法将 List<int[*]> 转换为用反射实例化的 List<int[]>

我正在实例化一个List单维Int32通过反射数组。当我使用以下方法实例化列表时:TypetypeInt=typeof(System.Int32);TypetypeIntArray=typeInt.MakeArrayType(1);TypetypeListGeneric=typeof(System.Collections.Generic.List);TypetypeList=typeListGeneric.MakeGenericType(newType[]{typeIntArray,});objectinstance=typeList.GetConstructor(Type.Empty

c# - 在 C# 中使用反射创建具有字符串值的未知枚举实例

当我在运行时拥有枚举的System.Type并检查了BaseType是否为System.Enum时,我在计算如何准确创建枚举实例时遇到了问题,我的值是一个与项目匹配的int值在神秘的枚举中。到目前为止,我的代码只是上面描述的逻辑,如下所示。if(Type.GetType(type)!=null){if(Type.GetType(type).BaseType.ToString()=="System.Enum"){return???;}}在过去使用枚举时,我总是在代码时知道我正在尝试解析哪个枚举,但在这种情况下我很困惑,并且运气不好以谷歌友好的方式阐明我的问题......我通常会这样做像(

c# - 无法从 VBA (VB6 ok) 实例化用 C# 编写的 COM 对象

使用VS2008,这是我的COM对象usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;usingSystem.Windows.Forms;namespaceTestCom{[Guid("9E5E5FB2-219D-4ee7-AB27-E4DBED8E123E")][ClassInterface(ClassInterfaceType.AutoDual)][ProgId("Test9.COMINT")]publicclassTestComClass

C#: "using"实例化表单时?

我正在查看其他人编写的一些C#代码。每当实例化并显示表单时,都会完成以下操作。这个对吗?为什么要在这种情况下使用“使用”?MyFormf;using(f=newMyForm()){f.ShowDialog();}附加问题:可以用下面的代码代替吗?using(MyFormf=newMyForm()){f.ShowDialog();} 最佳答案 WinForms中的一个Form实现了IDisposable模式(它继承了Component的IDisposable,原作者是正确确保值将通过using语句处理。

c# - 识别 MethodInfo 实例是否是属性访问器

我正在使用CastleDynamicProxy编写装饰代理.我需要代理的拦截器只拦截属性写入(而不是读取),因此我正在检查方法的名称:publicvoidIntercept(IInvocationinvocation){if(invocation.Method.Name.StartsWith("set_"){//...}invocation.Proceed();}现在这工作正常,但我不喜欢我的代理对属性的实现方式有深入了解的事实:我想用类似于以下内容的方法替换方法名称检查:if(invocation.Method.IsPropertySetAccessor)不幸的是,我的Google-

c# - 如何在非托管内存中实例化 C# 类? (可能的?)

更新:现在有一个“有效”的公认答案。您永远、永远、永远、永远都不应该使用它。曾经。首先让我声明我是一名游戏开发者,以此作为我的问题的序言。有一个合法的-如果非常不寻常-与性能相关的原因想要这样做。假设我有一个这样的C#类:classFoo{publicinta,b,c;publicvoidMyMethod(intd){a=d;b=d;c=a+b;}}没什么好看的。请注意,它是一种仅包含值类型的引用类型。在托管代码中我想要这样的东西:Foofoo;foo=Voodoo.NewInUnmanagedMemory();//NewInUnmanagedMemory函数会是什么样子?如果不能在C

C# WPF 如何强制执行 Windows 的单个实例

我想知道在WPF中为每个应用程序拥有一个给定窗口的单个实例的最佳方式(读起来最优雅)是什么。我是.NET和WPF的新手,我的想法看起来很蹩脚。privatestaticreadonlyObjectMUTEX=newObject();privatestaticAboutWindowINSTANCE;publicstaticAboutWindowGetOrCreate(){lock(MUTEX){if(INSTANCE==null){INSTANCE=newAboutWindow();}INSTANCE.Show();returnINSTANCE;}}privateAboutWindow(